Simulação Computacional de Heteroestruturas Semicondutoras


Apresentação para defesa de dissertação de mestrado

Candidato: Thiago Luiz Chaves de Melo

Orientadora: Profa. Dra. Euzi Conceição Fernandes da Silva

Objetivos


Queremos calcular propriedades dinamicas em heteroestruturas semicondutoras

Cálculo de espectros de fotocorrente e absorção dependem de:

  • autovalores e autovetores (autofunções e autoenergias)

  • evolução temporal (solução da ESDT for EDP ou Oper. de Evolução)

Pacote de Onda Plana


Em nossos primeiros cálculos, pequenas variações:

  • tamanho do sistema $L$ ...................... efeitos de borda
  • número de pontos $N$ ......................... $\Delta x = L / N$
  • passo de tempo $\Delta t$ ........................... estabilidade

causavam grandes diferenças nos resultados (fotocorrente e absoção)

Pacote de Onda Plana


É um problema simples de EDP:

$$ -\frac{\hbar^2}{2m_e} \frac{\partial^2 \psi(z,t)}{\partial z^2} = i \hbar \frac{\partial \psi(z,t)}{\partial t}, $$

para:

$$ \psi(z,0) = \frac{1}{ \sqrt[4]{ 2 \pi \sigma_{z}^2 }} \exp \left( i k_\mathrm{0} z - \frac{{\left( z - z_\mathrm{0} \right)}^2}{4 \sigma_{z}^2} \right). $$

Este problema possui algumas soluções analíticas, mas também pode ser tratado por Diferenças Finitas:

  • Runge-Kutta
  • Crank-Nicolson

Ou pelo operador de evolução temporal:

  • Split-Step FFT (Pseudo-Espectral)

Pacote de Onda Plana


Solução analítica 1 (FFT)

. $$ \Psi(z,t) = \displaystyle\int_{-\infty}^{+\infty} \left\{ \mathcal{F}[\Psi(z,0)] \, e^{- i \omega(k) t} \right\} \, e^{i kz} \, dk, $$

$$ E(k) = \hbar\omega(k)=\frac{\hbar^2 k^2}{2m} \rightarrow \omega(k)=\frac{\hbar k^2}{2m} $$

Solução analítica 2 (Propagador)

. $$ \Psi(z,t) = \displaystyle\int_{-\infty}^{+\infty} dx' \, J(x,t;x',0) \Psi(z',0) $$

$$ J(x,t;x',t') = \langle x | e^{-\frac{i \mathcal{H}\Delta t}{\hbar}} | x' \rangle $$$$ H = -\frac{\hbar^2}{2m_e} \frac{\partial^2 \psi(z,t)}{\partial z^2} $$

Pacote de Onda Plana


Optamos pela solução analítica 1, com fácil implementação:

In [ ]:
psi_k = fft(psi)
omega_k = k_au ** 2 / 2
psi = ifft(psi_k * np.exp(-1j * omega_k * t_au))

Pacote de Onda Plana


Para os métodos:

  • Pseudo-Espectral
  • Runge-Kutta
  • Crank-Nicolson

evoluímos um pacote de onda de energia $E=150$ eV da posição inicial $z_\mathrm{i} = -20.0$ Å até a posição final $z_\mathrm{f} \approx +20.0$ Å.

Variamos para cada método:

  • $L=\{100, 250, 400, 550, 700, 850, 1000\}$ Å
  • $N=\{256, 512, 1024,2048, 4096\}$ pontos
  • $\Delta t = \{1 \times 10^{-20},\, 5 \times 10^{-20}, \dots,\, 1 \times 10^{-16},\, 5 \times 10^{-16} \}$ s

Observamos:

  • Conservação da norma
  • Desvio padrão
  • Surgimento de obliquidade (skewness)
  • Tempo de processamento

Pacote de Onda Plana


Sobre o desvio padrão e a obliquidade. stdvar_skewness

In [6]:
# L=100.0, N=1024, dt=1e-18
fig = evolui_pacote_de_onda(pd.read_pickle('saidas/onda_plana_parametro_bom.pkl'))
iplot(fig, filename='Evolucao bons parametros')
In [7]:
# L=850.0, N=256, dt=1e-16
fig = evolui_pacote_de_onda(pd.read_pickle('saidas/onda_plana_parametro_ruim.pkl'))
iplot(fig, filename='Evolucao mals parametros')

Pacote de Onda Plana


Utilizamos a métrica de Minkowski com $p=3$ para verificar que o método Pseudo-Espectral é substancialmente mais rápido e mais preciso para a maioria das combinações de parâmetros:

stdvar_skewness

In [7]:
py.iplot(fig, filename='jupyter-parametric_plot')
Out[7]: